/*******************************************************************************
**
** Copyright (c) 2011 - The OWE Team
**
** This file is part of OWE.
**
** OWE is a free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License as published by the Free Software Foundation; version
** version 2.1 of the License.
**
** OWE is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public
** License along with OWE. If not, see <http://www.gnu.org/licenses/>.
**
*******************************************************************************/

#ifndef WIDGETINTERFACE_H
#define WIDGETINTERFACE_H

#include <owe/global.h>
#include <owe/widgetelement.h>

OWE_BEGIN_NAMESPACE

class ConfigurationDocument;
class WidgetInterfacePrivate;
class UString;

class OWE_EXPORT WidgetInterface
{
public:
    WidgetInterface(const ConfigurationDocument &configuration, const char *locale = "");

    ~WidgetInterface();

    bool isValid() const;
    void setLocale(const char *locale);

    UString author() const;
    UString authorEmail() const;
    UString authorHref() const;
    UString description() const;
    UString id() const;
    UString name() const;
    UString shortName() const;
    PreferenceElementList preferences() const;
    UString version() const;

    // FIXME: Width and height should return as unsigned long
    UString height() const;
    UString width() const;

private:
    WidgetInterfacePrivate *d_ptr;
};

OWE_END_NAMESPACE

#endif // WIDGETINTERFACE_H
